/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package views;

import entities.Usuarios;
import java.awt.EventQueue;
import java.awt.Toolkit;
import java.awt.event.WindowEvent;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.ImageIcon;
import javax.swing.JFrame;

/**
 *
 * @author Facu
 */
public class MenuPrincipal extends javax.swing.JPanel {

    private JFrame frame;
    private Usuarios tempusuarioActivo;
    private VistaDisponibilidad vistaDisponibilidad;
    private AltaReservas altaReservas;
    private VistaCancelado vistaCancelado;
    private EditarAlquileres editarAlquileres;
    private AltaClientes altaClientes;
    private AltaArticulos altaArticulos;
    private AltaRopaBlanca altaRopaBlanca;
    private AltaUnidadAlojamiento altaUnidadAlojamiento;
    private AltaTipoTemporadas altaTipoTemporadas;
    private AltaTemporadas altaTemporadas;
    private AltaFeriados altaFeriados;
    private VistaMantenimiento vistaMantenimiento;
    private ConfigurarMail configurarMail;
    private AltaUsuarios altaUsuarios;
    private ControlRopaBlancaEntregadaView controlRopaBlancaEntregada;
    private ControlRopaBlancaRecibidaView controlRopaBlancaRecibida;
    private GraficadorEstadisticaCantidadAlquileres graficadorEstadisticaCantidadAlquileres;
    private GraficadorEstadisticaIngresosMensuales graficadorEstadisticaIngresosMensuales;
    private GraficadorEstadisticaVisitas graficadorEstadisticaVisitas;
    private GraficadorEstadisticaNacionalesExtranjeros graficadorEstadisticaNacionalesExtranjeros;
    private OpcionesAvanzadas opcionesAvanzadas;
    private MovimientosCaja operacionCaja;
    private BalanceCaja vistaCaja;
    private HashMap clasesDeObjetosMap;
    private LogsView logsView;
    private List<JFrame> listaVentanas;

    /**
     *
     * Creates new form MenuPrincipal
     */
    public MenuPrincipal(JFrame frame, Usuarios usuario) {
        initComponents();
        tempusuarioActivo = usuario;
        habilitarBotones(usuario.getRol().getNombre());
        inicializarMap();
        this.frame = frame;
        listaVentanas = new ArrayList<>();
    }

    /**
     * Setea el MAP que tenemos con los nombres de los botones y con la clase a
     * la cual corresponde el objeto a crear al clickearlo
     */
    private void inicializarMap() {
        clasesDeObjetosMap = new HashMap<>();
        clasesDeObjetosMap.put(disponibilidadButton.getName(), VistaDisponibilidad.class);
        clasesDeObjetosMap.put(reservasButton.getName(), AltaReservas.class);
        clasesDeObjetosMap.put(alquileresButton.getName(), EditarAlquileres.class);
        clasesDeObjetosMap.put(clienteButton.getName(), AltaClientes.class);
        clasesDeObjetosMap.put(articulosButton.getName(), AltaArticulos.class);
        clasesDeObjetosMap.put(ropaBlancaButton.getName(), AltaRopaBlanca.class);
        clasesDeObjetosMap.put(unidadesalojamientoButton.getName(), AltaUnidadAlojamiento.class);
        clasesDeObjetosMap.put(tipotemporadaButton.getName(), AltaTipoTemporadas.class);
        clasesDeObjetosMap.put(abmtemporadaButton.getName(), AltaTemporadas.class);
        clasesDeObjetosMap.put(altaferiadoButton.getName(), AltaFeriados.class);
        clasesDeObjetosMap.put(estadisticaCantidadAlquileres.getName(), GraficadorEstadisticaCantidadAlquileres.class);
        clasesDeObjetosMap.put(estadisticaIngresosMensuales.getName(), GraficadorEstadisticaIngresosMensuales.class);
        clasesDeObjetosMap.put(estadisticaCantidadVisitas.getName(), GraficadorEstadisticaVisitas.class);
        clasesDeObjetosMap.put(estadisticaPorcentajeExtranjerosNacionales.getName(), GraficadorEstadisticaNacionalesExtranjeros.class);
        clasesDeObjetosMap.put(controlRopaBlancaEntregadaButton.getName(), ControlRopaBlancaEntregadaView.class);
        clasesDeObjetosMap.put(mantenimientoButton.getName(), VistaMantenimiento.class);
        clasesDeObjetosMap.put(cuentasUsuariosButton.getName(), AltaUsuarios.class);
        clasesDeObjetosMap.put(correoButton.getName(), ConfigurarMail.class);
        clasesDeObjetosMap.put(canceladosButton.getName(), VistaCancelado.class);
        clasesDeObjetosMap.put(opcionesAvanzadasButton.getName(), OpcionesAvanzadas.class);
        clasesDeObjetosMap.put(movimientosCajaButton.getName(), MovimientosCaja.class);
        clasesDeObjetosMap.put(balanceCajaButton.getName(), BalanceCaja.class);
        clasesDeObjetosMap.put(logsButton.getName(), LogsView.class);
    }

    /**
     * This method is called from within the constructor to initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is always
     * regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
    private void initComponents() {

        jMenuItem1 = new javax.swing.JMenuItem();
        cerrarSesionBoton = new javax.swing.JButton();
        salirBoton = new javax.swing.JButton();
        administracionPanel = new javax.swing.JPanel();
        administracionLabel = new javax.swing.JLabel();
        disponibilidadButton = new javax.swing.JButton();
        reservasButton = new javax.swing.JButton();
        alquileresButton = new javax.swing.JButton();
        clienteButton = new javax.swing.JButton();
        canceladosButton = new javax.swing.JButton();
        mantenimientoPanel = new javax.swing.JPanel();
        mantenimientoLabel = new javax.swing.JLabel();
        mantenimientoButton = new javax.swing.JButton();
        controlRopaBlancaEntregadaButton = new javax.swing.JButton();
        controlRopaBlancaRecibidaButton = new javax.swing.JButton();
        jLabel1 = new javax.swing.JLabel();
        inventarioPanel = new javax.swing.JPanel();
        inventarioLabel = new javax.swing.JLabel();
        ropaBlancaButton = new javax.swing.JButton();
        unidadesalojamientoButton = new javax.swing.JButton();
        articulosButton = new javax.swing.JButton();
        organizacionPanel = new javax.swing.JPanel();
        organizacionLabel = new javax.swing.JLabel();
        tipotemporadaButton = new javax.swing.JButton();
        abmtemporadaButton = new javax.swing.JButton();
        altaferiadoButton = new javax.swing.JButton();
        tituloPanel = new javax.swing.JPanel();
        jLabel6 = new javax.swing.JLabel();
        estadisticaPanel = new javax.swing.JPanel();
        estadisticasLabel = new javax.swing.JLabel();
        estadisticaCantidadAlquileres = new javax.swing.JButton();
        estadisticaCantidadVisitas = new javax.swing.JButton();
        estadisticaPorcentajeExtranjerosNacionales = new javax.swing.JButton();
        estadisticaIngresosMensuales = new javax.swing.JButton();
        sistemaPanel = new javax.swing.JPanel();
        sistemaLabel = new javax.swing.JLabel();
        cuentasUsuariosButton = new javax.swing.JButton();
        correoButton = new javax.swing.JButton();
        opcionesAvanzadasButton = new javax.swing.JButton();
        logsButton = new javax.swing.JButton();
        Separator = new javax.swing.JSeparator();
        creadoresLabel = new javax.swing.JLabel();
        ayudaLabel = new javax.swing.JLabel();
        cajaPanel = new javax.swing.JPanel();
        sistemaLabel1 = new javax.swing.JLabel();
        balanceCajaButton = new javax.swing.JButton();
        monedasButton = new javax.swing.JButton();
        movimientosCajaButton = new javax.swing.JButton();
        jLabel2 = new javax.swing.JLabel();
        jLabel3 = new javax.swing.JLabel();

        jMenuItem1.setText("jMenuItem1");

        setBackground(new java.awt.Color(227, 227, 227));

        cerrarSesionBoton.setBackground(new java.awt.Color(1, 154, 210));
        cerrarSesionBoton.setFont(new java.awt.Font("Tahoma", 1, 13)); // NOI18N
        cerrarSesionBoton.setForeground(new java.awt.Color(255, 255, 255));
        cerrarSesionBoton.setText("Cerrar sesión");
        cerrarSesionBoton.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                cerrarSesionBotonActionPerformed(evt);
            }
        });

        salirBoton.setBackground(new java.awt.Color(1, 154, 210));
        salirBoton.setFont(new java.awt.Font("Tahoma", 1, 13)); // NOI18N
        salirBoton.setForeground(new java.awt.Color(255, 255, 255));
        salirBoton.setText("Salir del sistema");
        salirBoton.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                salirBotonActionPerformed(evt);
            }
        });

        administracionPanel.setBackground(new java.awt.Color(153, 153, 153));

        administracionLabel.setFont(new java.awt.Font("Tahoma", 1, 14)); // NOI18N
        administracionLabel.setForeground(new java.awt.Color(255, 255, 255));
        administracionLabel.setText("Administración");

        disponibilidadButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/images/info.png"))); // NOI18N
        disponibilidadButton.setText("Disponibilidad");
        disponibilidadButton.setEnabled(false);
        disponibilidadButton.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                disponibilidadButtonActionPerformed(evt);
            }
        });

        reservasButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/images/hotel.png"))); // NOI18N
        reservasButton.setText("Reservas");
        reservasButton.setEnabled(false);
        reservasButton.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                reservasButtonActionPerformed(evt);
            }
        });

        alquileresButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/images/apartment.png"))); // NOI18N
        alquileresButton.setText("Alquileres");
        alquileresButton.setEnabled(false);
        alquileresButton.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                alquileresButtonActionPerformed(evt);
            }
        });

        clienteButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/images/family.png"))); // NOI18N
        clienteButton.setText("Clientes");
        clienteButton.setEnabled(false);
        clienteButton.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                clienteButtonActionPerformed(evt);
            }
        });

        canceladosButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/images/family.png"))); // NOI18N
        canceladosButton.setText("Cancelados");
        canceladosButton.setEnabled(false);
        canceladosButton.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                canceladosButtonActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout administracionPanelLayout = new javax.swing.GroupLayout(administracionPanel);
        administracionPanel.setLayout(administracionPanelLayout);
        administracionPanelLayout.setHorizontalGroup(
            administracionPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(administracionPanelLayout.createSequentialGroup()
                .addGroup(administracionPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(administracionPanelLayout.createSequentialGroup()
                        .addGap(10, 10, 10)
                        .addComponent(administracionLabel))
                    .addGroup(administracionPanelLayout.createSequentialGroup()
                        .addContainerGap()
                        .addComponent(disponibilidadButton, javax.swing.GroupLayout.PREFERRED_SIZE, 145, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(reservasButton, javax.swing.GroupLayout.PREFERRED_SIZE, 145, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(alquileresButton, javax.swing.GroupLayout.PREFERRED_SIZE, 145, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(canceladosButton, javax.swing.GroupLayout.PREFERRED_SIZE, 145, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(clienteButton, javax.swing.GroupLayout.PREFERRED_SIZE, 145, javax.swing.GroupLayout.PREFERRED_SIZE)))
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );
        administracionPanelLayout.setVerticalGroup(
            administracionPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, administracionPanelLayout.createSequentialGroup()
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addComponent(administracionLabel)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addGroup(administracionPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(administracionPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                        .addComponent(alquileresButton, javax.swing.GroupLayout.PREFERRED_SIZE, 40, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addComponent(canceladosButton, javax.swing.GroupLayout.PREFERRED_SIZE, 40, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addComponent(clienteButton, javax.swing.GroupLayout.PREFERRED_SIZE, 40, javax.swing.GroupLayout.PREFERRED_SIZE))
                    .addComponent(reservasButton, javax.swing.GroupLayout.PREFERRED_SIZE, 40, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(disponibilidadButton, javax.swing.GroupLayout.PREFERRED_SIZE, 40, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addGap(77, 77, 77))
        );

        mantenimientoPanel.setBackground(new java.awt.Color(153, 153, 153));

        mantenimientoLabel.setFont(new java.awt.Font("Tahoma", 1, 14)); // NOI18N
        mantenimientoLabel.setForeground(new java.awt.Color(255, 255, 255));
        mantenimientoLabel.setText("Mantenimiento");

        mantenimientoButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/images/tools.png"))); // NOI18N
        mantenimientoButton.setText("Mantenimiento");
        mantenimientoButton.setEnabled(false);
        mantenimientoButton.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                mantenimientoButtonActionPerformed(evt);
            }
        });

        controlRopaBlancaEntregadaButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/images/textiles.png"))); // NOI18N
        controlRopaBlancaEntregadaButton.setText("Entrega");
        controlRopaBlancaEntregadaButton.setEnabled(false);
        controlRopaBlancaEntregadaButton.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                controlRopaBlancaEntregadaButtonActionPerformed(evt);
            }
        });

        controlRopaBlancaRecibidaButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/images/textiles.png"))); // NOI18N
        controlRopaBlancaRecibidaButton.setText("Recepción");
        controlRopaBlancaRecibidaButton.setEnabled(false);
        controlRopaBlancaRecibidaButton.setMaximumSize(new java.awt.Dimension(239, 47));
        controlRopaBlancaRecibidaButton.setMinimumSize(new java.awt.Dimension(239, 47));
        controlRopaBlancaRecibidaButton.setPreferredSize(new java.awt.Dimension(239, 47));
        controlRopaBlancaRecibidaButton.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                controlRopaBlancaRecibidaButtonActionPerformed(evt);
            }
        });

        jLabel1.setFont(new java.awt.Font("Tahoma", 1, 14)); // NOI18N
        jLabel1.setForeground(new java.awt.Color(255, 255, 255));
        jLabel1.setText("Ropa Blanca");

        javax.swing.GroupLayout mantenimientoPanelLayout = new javax.swing.GroupLayout(mantenimientoPanel);
        mantenimientoPanel.setLayout(mantenimientoPanelLayout);
        mantenimientoPanelLayout.setHorizontalGroup(
            mantenimientoPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(mantenimientoPanelLayout.createSequentialGroup()
                .addGap(10, 10, 10)
                .addGroup(mantenimientoPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(mantenimientoPanelLayout.createSequentialGroup()
                        .addComponent(jLabel1, javax.swing.GroupLayout.PREFERRED_SIZE, 108, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                        .addComponent(mantenimientoLabel)
                        .addGap(56, 56, 56))
                    .addGroup(mantenimientoPanelLayout.createSequentialGroup()
                        .addGroup(mantenimientoPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                            .addComponent(controlRopaBlancaRecibidaButton, javax.swing.GroupLayout.PREFERRED_SIZE, 0, Short.MAX_VALUE)
                            .addComponent(controlRopaBlancaEntregadaButton, javax.swing.GroupLayout.DEFAULT_SIZE, 175, Short.MAX_VALUE))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(mantenimientoButton, javax.swing.GroupLayout.PREFERRED_SIZE, 175, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addContainerGap(19, Short.MAX_VALUE))))
        );
        mantenimientoPanelLayout.setVerticalGroup(
            mantenimientoPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(mantenimientoPanelLayout.createSequentialGroup()
                .addContainerGap()
                .addGroup(mantenimientoPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(mantenimientoLabel)
                    .addComponent(jLabel1))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addGroup(mantenimientoPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(controlRopaBlancaEntregadaButton, javax.swing.GroupLayout.PREFERRED_SIZE, 40, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(mantenimientoButton, javax.swing.GroupLayout.PREFERRED_SIZE, 40, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(controlRopaBlancaRecibidaButton, javax.swing.GroupLayout.PREFERRED_SIZE, 39, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );

        inventarioPanel.setBackground(new java.awt.Color(153, 153, 153));

        inventarioLabel.setFont(new java.awt.Font("Tahoma", 1, 14)); // NOI18N
        inventarioLabel.setForeground(new java.awt.Color(255, 255, 255));
        inventarioLabel.setText("Inventario");

        ropaBlancaButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/images/textiles.png"))); // NOI18N
        ropaBlancaButton.setText("         Ropa Blanca            ");
        ropaBlancaButton.setEnabled(false);
        ropaBlancaButton.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                ropaBlancaButtonActionPerformed(evt);
            }
        });

        unidadesalojamientoButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/images/unidad alojamiento.png"))); // NOI18N
        unidadesalojamientoButton.setText("Unidades de Alojamiento");
        unidadesalojamientoButton.setEnabled(false);
        unidadesalojamientoButton.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                unidadesalojamientoButtonActionPerformed(evt);
            }
        });

        articulosButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/images/laundromat.png"))); // NOI18N
        articulosButton.setText("          Articulos                 ");
        articulosButton.setEnabled(false);
        articulosButton.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                articulosButtonActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout inventarioPanelLayout = new javax.swing.GroupLayout(inventarioPanel);
        inventarioPanel.setLayout(inventarioPanelLayout);
        inventarioPanelLayout.setHorizontalGroup(
            inventarioPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(inventarioPanelLayout.createSequentialGroup()
                .addContainerGap()
                .addGroup(inventarioPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(inventarioLabel)
                    .addComponent(articulosButton, javax.swing.GroupLayout.PREFERRED_SIZE, 205, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(ropaBlancaButton, javax.swing.GroupLayout.PREFERRED_SIZE, 205, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(unidadesalojamientoButton, javax.swing.GroupLayout.PREFERRED_SIZE, 205, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );
        inventarioPanelLayout.setVerticalGroup(
            inventarioPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(inventarioPanelLayout.createSequentialGroup()
                .addContainerGap()
                .addComponent(inventarioLabel)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addComponent(articulosButton, javax.swing.GroupLayout.PREFERRED_SIZE, 40, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(ropaBlancaButton, javax.swing.GroupLayout.PREFERRED_SIZE, 40, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(unidadesalojamientoButton, javax.swing.GroupLayout.PREFERRED_SIZE, 40, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(29, Short.MAX_VALUE))
        );

        organizacionPanel.setBackground(new java.awt.Color(153, 153, 153));

        organizacionLabel.setFont(new java.awt.Font("Tahoma", 1, 14)); // NOI18N
        organizacionLabel.setForeground(new java.awt.Color(255, 255, 255));
        organizacionLabel.setText("Organización");

        tipotemporadaButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/images/beach.png"))); // NOI18N
        tipotemporadaButton.setText("Tipos de Temporada");
        tipotemporadaButton.setEnabled(false);
        tipotemporadaButton.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                tipotemporadaButtonActionPerformed(evt);
            }
        });

        abmtemporadaButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/images/snow.png"))); // NOI18N
        abmtemporadaButton.setText("Editar Temporadas ");
        abmtemporadaButton.setEnabled(false);
        abmtemporadaButton.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                abmtemporadaButtonActionPerformed(evt);
            }
        });

        altaferiadoButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/images/resort.png"))); // NOI18N
        altaferiadoButton.setText("  Editar Feriados      ");
        altaferiadoButton.setEnabled(false);
        altaferiadoButton.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                altaferiadoButtonActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout organizacionPanelLayout = new javax.swing.GroupLayout(organizacionPanel);
        organizacionPanel.setLayout(organizacionPanelLayout);
        organizacionPanelLayout.setHorizontalGroup(
            organizacionPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(organizacionPanelLayout.createSequentialGroup()
                .addContainerGap()
                .addGroup(organizacionPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(tipotemporadaButton, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .addGroup(organizacionPanelLayout.createSequentialGroup()
                        .addGroup(organizacionPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(organizacionLabel)
                            .addGroup(organizacionPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.CENTER)
                                .addComponent(abmtemporadaButton, javax.swing.GroupLayout.PREFERRED_SIZE, 205, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addComponent(altaferiadoButton, javax.swing.GroupLayout.PREFERRED_SIZE, 205, javax.swing.GroupLayout.PREFERRED_SIZE)))
                        .addGap(0, 0, Short.MAX_VALUE)))
                .addContainerGap())
        );
        organizacionPanelLayout.setVerticalGroup(
            organizacionPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(organizacionPanelLayout.createSequentialGroup()
                .addContainerGap()
                .addComponent(organizacionLabel)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addComponent(tipotemporadaButton, javax.swing.GroupLayout.PREFERRED_SIZE, 40, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(abmtemporadaButton, javax.swing.GroupLayout.PREFERRED_SIZE, 40, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(altaferiadoButton, javax.swing.GroupLayout.PREFERRED_SIZE, 40, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(29, Short.MAX_VALUE))
        );

        tituloPanel.setBackground(new java.awt.Color(51, 51, 51));

        jLabel6.setFont(new java.awt.Font("Trebuchet MS", 1, 14)); // NOI18N
        jLabel6.setForeground(new java.awt.Color(255, 255, 255));
        jLabel6.setIcon(new javax.swing.ImageIcon(getClass().getResource("/images/logo.png"))); // NOI18N
        jLabel6.setText(" Sistema Integrado de Administración de Alquileres Turísticos");

        javax.swing.GroupLayout tituloPanelLayout = new javax.swing.GroupLayout(tituloPanel);
        tituloPanel.setLayout(tituloPanelLayout);
        tituloPanelLayout.setHorizontalGroup(
            tituloPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(tituloPanelLayout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jLabel6)
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );
        tituloPanelLayout.setVerticalGroup(
            tituloPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addComponent(jLabel6)
        );

        estadisticaPanel.setBackground(new java.awt.Color(153, 153, 153));

        estadisticasLabel.setFont(new java.awt.Font("Tahoma", 1, 14)); // NOI18N
        estadisticasLabel.setForeground(new java.awt.Color(255, 255, 255));
        estadisticasLabel.setText("Estadísticas");

        estadisticaCantidadAlquileres.setIcon(new javax.swing.ImageIcon(getClass().getResource("/images/library.png"))); // NOI18N
        estadisticaCantidadAlquileres.setText("Cantidad de Alquileres");
        estadisticaCantidadAlquileres.setEnabled(false);
        estadisticaCantidadAlquileres.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                estadisticaCantidadAlquileresActionPerformed(evt);
            }
        });

        estadisticaCantidadVisitas.setIcon(new javax.swing.ImageIcon(getClass().getResource("/images/library.png"))); // NOI18N
        estadisticaCantidadVisitas.setText("Cantidad de Visitas");
        estadisticaCantidadVisitas.setEnabled(false);
        estadisticaCantidadVisitas.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                estadisticaCantidadVisitasActionPerformed(evt);
            }
        });

        estadisticaPorcentajeExtranjerosNacionales.setIcon(new javax.swing.ImageIcon(getClass().getResource("/images/library.png"))); // NOI18N
        estadisticaPorcentajeExtranjerosNacionales.setText("Distribución Geografica");
        estadisticaPorcentajeExtranjerosNacionales.setEnabled(false);
        estadisticaPorcentajeExtranjerosNacionales.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                estadisticaPorcentajeExtranjerosNacionalesActionPerformed(evt);
            }
        });

        estadisticaIngresosMensuales.setIcon(new javax.swing.ImageIcon(getClass().getResource("/images/library.png"))); // NOI18N
        estadisticaIngresosMensuales.setText("Ingresos Mensuales");
        estadisticaIngresosMensuales.setEnabled(false);
        estadisticaIngresosMensuales.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                estadisticaIngresosMensualesActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout estadisticaPanelLayout = new javax.swing.GroupLayout(estadisticaPanel);
        estadisticaPanel.setLayout(estadisticaPanelLayout);
        estadisticaPanelLayout.setHorizontalGroup(
            estadisticaPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(estadisticaPanelLayout.createSequentialGroup()
                .addGroup(estadisticaPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(estadisticaPanelLayout.createSequentialGroup()
                        .addGap(10, 10, 10)
                        .addComponent(estadisticasLabel))
                    .addGroup(estadisticaPanelLayout.createSequentialGroup()
                        .addContainerGap()
                        .addComponent(estadisticaCantidadAlquileres)
                        .addGap(18, 18, 18)
                        .addComponent(estadisticaIngresosMensuales)
                        .addGap(18, 18, 18)
                        .addComponent(estadisticaCantidadVisitas)
                        .addGap(18, 18, 18)
                        .addComponent(estadisticaPorcentajeExtranjerosNacionales)))
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );
        estadisticaPanelLayout.setVerticalGroup(
            estadisticaPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, estadisticaPanelLayout.createSequentialGroup()
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addComponent(estadisticasLabel)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(estadisticaPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(estadisticaCantidadAlquileres, javax.swing.GroupLayout.PREFERRED_SIZE, 40, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(estadisticaIngresosMensuales, javax.swing.GroupLayout.PREFERRED_SIZE, 40, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(estadisticaCantidadVisitas, javax.swing.GroupLayout.PREFERRED_SIZE, 40, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(estadisticaPorcentajeExtranjerosNacionales, javax.swing.GroupLayout.PREFERRED_SIZE, 40, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addGap(66, 66, 66))
        );

        sistemaPanel.setBackground(new java.awt.Color(153, 153, 153));

        sistemaLabel.setFont(new java.awt.Font("Tahoma", 1, 14)); // NOI18N
        sistemaLabel.setForeground(new java.awt.Color(255, 255, 255));
        sistemaLabel.setText("Sistema");

        cuentasUsuariosButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/images/prison.png"))); // NOI18N
        cuentasUsuariosButton.setText("Cuentas de Usuarios");
        cuentasUsuariosButton.setEnabled(false);
        cuentasUsuariosButton.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                cuentasUsuariosButtonActionPerformed(evt);
            }
        });

        correoButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/images/correos.png"))); // NOI18N
        correoButton.setText("Correo Electronico");
        correoButton.setEnabled(false);
        correoButton.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                correoButtonActionPerformed(evt);
            }
        });

        opcionesAvanzadasButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/images/mine.png"))); // NOI18N
        opcionesAvanzadasButton.setText("Opciones Avanzadas");
        opcionesAvanzadasButton.setEnabled(false);
        opcionesAvanzadasButton.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                opcionesAvanzadasButtonActionPerformed(evt);
            }
        });

        logsButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/images/log.png"))); // NOI18N
        logsButton.setText("Logs");
        logsButton.setEnabled(false);
        logsButton.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                logsButtonActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout sistemaPanelLayout = new javax.swing.GroupLayout(sistemaPanel);
        sistemaPanel.setLayout(sistemaPanelLayout);
        sistemaPanelLayout.setHorizontalGroup(
            sistemaPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(sistemaPanelLayout.createSequentialGroup()
                .addContainerGap()
                .addGroup(sistemaPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(sistemaPanelLayout.createSequentialGroup()
                        .addComponent(opcionesAvanzadasButton, javax.swing.GroupLayout.PREFERRED_SIZE, 181, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addGap(18, 18, 18)
                        .addComponent(correoButton)
                        .addGap(30, 30, 30)
                        .addComponent(cuentasUsuariosButton)
                        .addGap(29, 29, 29)
                        .addComponent(logsButton, javax.swing.GroupLayout.PREFERRED_SIZE, 152, javax.swing.GroupLayout.PREFERRED_SIZE))
                    .addComponent(sistemaLabel))
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );
        sistemaPanelLayout.setVerticalGroup(
            sistemaPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(sistemaPanelLayout.createSequentialGroup()
                .addContainerGap()
                .addComponent(sistemaLabel)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(sistemaPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(opcionesAvanzadasButton, javax.swing.GroupLayout.PREFERRED_SIZE, 40, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(correoButton, javax.swing.GroupLayout.PREFERRED_SIZE, 40, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(cuentasUsuariosButton, javax.swing.GroupLayout.PREFERRED_SIZE, 40, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(logsButton, javax.swing.GroupLayout.PREFERRED_SIZE, 40, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addContainerGap(26, Short.MAX_VALUE))
        );

        creadoresLabel.setFont(new java.awt.Font("Tahoma", 0, 9)); // NOI18N
        creadoresLabel.setText("Diseño y Desarrollo por Emiliano Diaz, Lucas Tschopp y Facundo Nahuel Rico © 2012-2013 todos los derechos reservados");

        ayudaLabel.setIcon(new javax.swing.ImageIcon(getClass().getResource("/images/help.png"))); // NOI18N
        ayudaLabel.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseEntered(java.awt.event.MouseEvent evt) {
                ayudaLabelMouseEntered(evt);
            }
        });

        cajaPanel.setBackground(new java.awt.Color(153, 153, 153));

        sistemaLabel1.setFont(new java.awt.Font("Tahoma", 1, 14)); // NOI18N
        sistemaLabel1.setForeground(new java.awt.Color(255, 255, 255));
        sistemaLabel1.setText("Operaciones de Caja");

        balanceCajaButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/images/cash.png"))); // NOI18N
        balanceCajaButton.setText("Balance");
        balanceCajaButton.setEnabled(false);
        balanceCajaButton.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                balanceCajaButtonActionPerformed(evt);
            }
        });

        monedasButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/images/cash.png"))); // NOI18N
        monedasButton.setText("Monedas");
        monedasButton.setEnabled(false);
        monedasButton.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                monedasButtonActionPerformed(evt);
            }
        });

        movimientosCajaButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/images/cash.png"))); // NOI18N
        movimientosCajaButton.setText("Movimientos");
        movimientosCajaButton.setEnabled(false);
        movimientosCajaButton.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                movimientosCajaButtonActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout cajaPanelLayout = new javax.swing.GroupLayout(cajaPanel);
        cajaPanel.setLayout(cajaPanelLayout);
        cajaPanelLayout.setHorizontalGroup(
            cajaPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(cajaPanelLayout.createSequentialGroup()
                .addGap(18, 18, 18)
                .addGroup(cajaPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(sistemaLabel1)
                    .addGroup(cajaPanelLayout.createSequentialGroup()
                        .addComponent(balanceCajaButton, javax.swing.GroupLayout.PREFERRED_SIZE, 175, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addGroup(cajaPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(movimientosCajaButton, javax.swing.GroupLayout.PREFERRED_SIZE, 175, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(monedasButton, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, 175, javax.swing.GroupLayout.PREFERRED_SIZE))))
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );
        cajaPanelLayout.setVerticalGroup(
            cajaPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(cajaPanelLayout.createSequentialGroup()
                .addContainerGap()
                .addComponent(sistemaLabel1)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addGroup(cajaPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(balanceCajaButton, javax.swing.GroupLayout.PREFERRED_SIZE, 40, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(movimientosCajaButton, javax.swing.GroupLayout.PREFERRED_SIZE, 40, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(monedasButton, javax.swing.GroupLayout.PREFERRED_SIZE, 40, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );

        jLabel2.setIcon(new javax.swing.ImageIcon(getClass().getResource("/images/logoSiaat.png"))); // NOI18N

        jLabel3.setFont(new java.awt.Font("Vrinda", 1, 18)); // NOI18N
        jLabel3.setForeground(new java.awt.Color(51, 51, 255));
        jLabel3.setText("Visitanos en www.siaatpatagonia.com.ar");

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this);
        this.setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addComponent(tituloPanel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
            .addComponent(Separator, javax.swing.GroupLayout.Alignment.TRAILING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(layout.createSequentialGroup()
                        .addGap(6, 6, 6)
                        .addComponent(ayudaLabel)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                        .addComponent(creadoresLabel)
                        .addGap(8, 8, 8))
                    .addGroup(layout.createSequentialGroup()
                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                            .addComponent(administracionPanel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                            .addComponent(sistemaPanel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                            .addComponent(estadisticaPanel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                            .addComponent(mantenimientoPanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(cajaPanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addContainerGap())
                    .addGroup(layout.createSequentialGroup()
                        .addComponent(inventarioPanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(organizacionPanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(jLabel2, javax.swing.GroupLayout.Alignment.TRAILING)
                            .addComponent(jLabel3, javax.swing.GroupLayout.Alignment.TRAILING))
                        .addContainerGap())
                    .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
                        .addGap(0, 0, Short.MAX_VALUE)
                        .addComponent(cerrarSesionBoton, javax.swing.GroupLayout.PREFERRED_SIZE, 150, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addGap(18, 18, 18)
                        .addComponent(salirBoton, javax.swing.GroupLayout.PREFERRED_SIZE, 150, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addContainerGap())))
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
                .addComponent(tituloPanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(layout.createSequentialGroup()
                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                            .addComponent(cerrarSesionBoton, javax.swing.GroupLayout.PREFERRED_SIZE, 34, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(salirBoton, javax.swing.GroupLayout.PREFERRED_SIZE, 34, javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addGap(1, 1, 1)
                        .addComponent(Separator, javax.swing.GroupLayout.PREFERRED_SIZE, 10, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addGap(10, 10, 10)
                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                            .addGroup(layout.createSequentialGroup()
                                .addComponent(cajaPanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                                .addComponent(mantenimientoPanel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                            .addGroup(layout.createSequentialGroup()
                                .addComponent(administracionPanel, javax.swing.GroupLayout.PREFERRED_SIZE, 103, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                                .addComponent(sistemaPanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                                .addComponent(estadisticaPanel, javax.swing.GroupLayout.PREFERRED_SIZE, 100, javax.swing.GroupLayout.PREFERRED_SIZE)))
                        .addGap(18, 18, 18)
                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addGroup(layout.createSequentialGroup()
                                .addGap(0, 6, Short.MAX_VALUE)
                                .addComponent(inventarioPanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                            .addGroup(layout.createSequentialGroup()
                                .addComponent(jLabel2)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addComponent(jLabel3)
                                .addGap(0, 0, Short.MAX_VALUE))))
                    .addGroup(layout.createSequentialGroup()
                        .addGap(0, 0, Short.MAX_VALUE)
                        .addComponent(organizacionPanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(ayudaLabel, javax.swing.GroupLayout.Alignment.TRAILING)
                    .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
                        .addComponent(creadoresLabel)
                        .addContainerGap())))
        );
    }// </editor-fold>//GEN-END:initComponents

    private void habilitarBotones(String rol) {
        switch (rol) {
            case "ADMINISTRADOR":
                disponibilidadButton.setEnabled(true);
                reservasButton.setEnabled(true);
                alquileresButton.setEnabled(true);
                clienteButton.setEnabled(true);
                articulosButton.setEnabled(true);
                ropaBlancaButton.setEnabled(true);
                unidadesalojamientoButton.setEnabled(true);
                tipotemporadaButton.setEnabled(true);
                abmtemporadaButton.setEnabled(true);
                altaferiadoButton.setEnabled(true);
                estadisticaCantidadAlquileres.setEnabled(true);
                estadisticaIngresosMensuales.setEnabled(true);
                estadisticaCantidadVisitas.setEnabled(true);
                estadisticaPorcentajeExtranjerosNacionales.setEnabled(true);
                controlRopaBlancaEntregadaButton.setEnabled(true);
                controlRopaBlancaRecibidaButton.setEnabled(true);
                mantenimientoButton.setEnabled(true);
                cuentasUsuariosButton.setEnabled(true);
                correoButton.setEnabled(true);
                canceladosButton.setEnabled(true);
                opcionesAvanzadasButton.setEnabled(true);
                movimientosCajaButton.setEnabled(true);
                balanceCajaButton.setEnabled(true);
                logsButton.setEnabled(true);
                monedasButton.setEnabled(true);
                break;
            case "LIMPIEZA":
                controlRopaBlancaEntregadaButton.setEnabled(true);
                controlRopaBlancaRecibidaButton.setEnabled(true);
                break;
            case "MANTENIMIENTO":
                mantenimientoButton.setEnabled(true);
                break;
            case "RECEPCIONISTA":
                disponibilidadButton.setEnabled(true);
                reservasButton.setEnabled(true);
                alquileresButton.setEnabled(true);
                clienteButton.setEnabled(true);
                canceladosButton.setEnabled(true);
                movimientosCajaButton.setEnabled(true);
                break;
            default:
                disponibilidadButton.setEnabled(true);
                break;
        }
    }

    private boolean frameMinimizado(JFrame frame) {
        if (frame.getState() == JFrame.ICONIFIED) {
            return true;
        }
        return false;
    }

    /**
     *
     * @param object: Es el objeto que queremos saber si está creado
     * (instanciado)
     * @return true: Si el objeto esta creado false: Caso contrario
     */
    public static boolean frameCreado(Object object) {
        if (object == null) {
            return false;
        } else {
            return true;
        }
    }

    /**
     *
     * @param object: Es el objeto que queremos saber si está cerrado
     * @return true: Si el frame está cerrado false: Caso contrario
     */
    public static boolean frameCerrado(Object object) {
        if (object == null) {
            return true;
        } else {
            return false;
        }
    }

    /**
     *
     * @param frame: El frame que queremos saber si está visible
     * @return true: Si el frame está visible false: Si no está visible
     */
    public static boolean frameVisible(JFrame frame) {
        if (frame.isVisible()) {
            return true;
        } else {
            return false;
        }
    }

    /**
     *
     * @param nombre: Es el nombre del botón en el que fue atrapado el evento
     * @return el objeto creado
     */
    private Object crearFrame(String nombre) {
        Class clase = (Class) clasesDeObjetosMap.get(nombre);
        Object frame = null;
        try {
            frame = clase.newInstance();
        } catch (InstantiationException ex) {
            Logger.getLogger(MenuPrincipal.class.getName()).log(Level.SEVERE, null, ex);
        } catch (IllegalAccessException ex) {
            Logger.getLogger(MenuPrincipal.class.getName()).log(Level.SEVERE, null, ex);
        }
        return frame;
    }

    public static void rearmarFrame(JFrame frame) {
        frame.setVisible(true);
        frame.pack();
        frame.repaint();
    }

    private void disponibilidadButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_disponibilidadButtonActionPerformed
        if ((frameCreado(VistaDisponibilidad.frame)) && (frameCerrado(VistaDisponibilidad.frame))) {
            listaVentanas.remove(VistaDisponibilidad.frame);
            VistaDisponibilidad.frame = null;
        }
        if (!frameCreado(VistaDisponibilidad.frame)) {
            VistaDisponibilidad.main(tempusuarioActivo);
            listaVentanas.add(VistaDisponibilidad.frame);
        } else {
            if (!frameVisible(VistaDisponibilidad.frame)) {
                rearmarFrame(VistaDisponibilidad.frame);
            }
            VistaDisponibilidad.frame.toFront();
        }
    }//GEN-LAST:event_disponibilidadButtonActionPerformed

    private void reservasButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_reservasButtonActionPerformed
        if ((frameCreado(AltaReservas.frame)) && (frameCerrado(AltaReservas.frame))) {
            listaVentanas.remove(AltaReservas.frame);
            AltaReservas.frame = null;
        }
        if (!frameCreado(AltaReservas.frame)) {
            AltaReservas.main(tempusuarioActivo, null);
            listaVentanas.add(AltaReservas.frame);
        } else {
            if (!frameVisible(AltaReservas.frame)) {
                rearmarFrame(AltaReservas.frame);
            }
            AltaReservas.frame.toFront();
        }
    }//GEN-LAST:event_reservasButtonActionPerformed

    private void alquileresButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_alquileresButtonActionPerformed
        if ((frameCreado(EditarAlquileres.frame)) && (frameCerrado(EditarAlquileres.frame))) {
            listaVentanas.remove(EditarAlquileres.frame);
            EditarAlquileres.frame = null;
        }
        if (!frameCreado(EditarAlquileres.frame)) {
            EditarAlquileres.main(tempusuarioActivo, null);
            listaVentanas.add(EditarAlquileres.frame);
        } else {
            if (!frameVisible(EditarAlquileres.frame)) {
                rearmarFrame(EditarAlquileres.frame);
            }
            EditarAlquileres.frame.toFront();
        }
    }//GEN-LAST:event_alquileresButtonActionPerformed

    private void clienteButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_clienteButtonActionPerformed
        if ((frameCreado(AltaClientes.frame)) && (frameCerrado(AltaClientes.frame))) {
            listaVentanas.remove(AltaClientes.frame);
            AltaClientes.frame = null;
        }
        if (!frameCreado(AltaClientes.frame)) {
            AltaClientes.main(false, tempusuarioActivo);
            listaVentanas.add(AltaClientes.frame);
        } else {
            if (!frameVisible(AltaClientes.frame)) {
                rearmarFrame(AltaClientes.frame);
            }
            AltaClientes.frame.toFront();
        }
    }//GEN-LAST:event_clienteButtonActionPerformed

    private void altaferiadoButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_altaferiadoButtonActionPerformed
        if ((frameCreado(AltaFeriados.frame)) && (frameCerrado(AltaFeriados.frame))) {
            listaVentanas.remove(AltaFeriados.frame);
            AltaFeriados.frame = null;
        }
        if (!frameCreado(AltaFeriados.frame)) {
            AltaFeriados.main(tempusuarioActivo);
            listaVentanas.add(AltaFeriados.frame);
        } else {
            if (!frameVisible(AltaFeriados.frame)) {
                rearmarFrame(AltaFeriados.frame);
            }
            AltaFeriados.frame.toFront();
        }
    }//GEN-LAST:event_altaferiadoButtonActionPerformed

    private void ropaBlancaButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_ropaBlancaButtonActionPerformed
        if ((frameCreado(AltaRopaBlanca.frame)) && (frameCerrado(AltaRopaBlanca.frame))) {
            listaVentanas.remove(AltaRopaBlanca.frame);
            AltaRopaBlanca.frame = null;
        }
        if (!frameCreado(AltaRopaBlanca.frame)) {
            AltaRopaBlanca.main(tempusuarioActivo);
            listaVentanas.add(AltaRopaBlanca.frame);
        } else {
            if (!frameVisible(AltaRopaBlanca.frame)) {
                rearmarFrame(AltaRopaBlanca.frame);
            }
            AltaRopaBlanca.frame.toFront();
        }
    }//GEN-LAST:event_ropaBlancaButtonActionPerformed

    private void controlRopaBlancaEntregadaButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_controlRopaBlancaEntregadaButtonActionPerformed
        if ((frameCreado(ControlRopaBlancaEntregadaView.frame)) && (frameCerrado(ControlRopaBlancaEntregadaView.frame))) {
            listaVentanas.remove(ControlRopaBlancaEntregadaView.frame);
            ControlRopaBlancaEntregadaView.frame = null;
        }
        if (!frameCreado(ControlRopaBlancaEntregadaView.frame)) {
            ControlRopaBlancaEntregadaView.main(tempusuarioActivo);
            listaVentanas.add(ControlRopaBlancaEntregadaView.frame);
        } else {
            if (!frameVisible(ControlRopaBlancaEntregadaView.frame)) {
                rearmarFrame(ControlRopaBlancaEntregadaView.frame);
            }
            ControlRopaBlancaEntregadaView.frame.toFront();
        }
    }//GEN-LAST:event_controlRopaBlancaEntregadaButtonActionPerformed

    private void estadisticaCantidadAlquileresActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_estadisticaCantidadAlquileresActionPerformed
        if ((frameCreado(GraficadorEstadisticaCantidadAlquileres.frame)) && (frameCerrado(GraficadorEstadisticaCantidadAlquileres.frame))) {
            listaVentanas.remove(GraficadorEstadisticaCantidadAlquileres.frame);
            GraficadorEstadisticaCantidadAlquileres.frame = null;
        }
        if (!frameCreado(GraficadorEstadisticaCantidadAlquileres.frame)) {
            GraficadorEstadisticaCantidadAlquileres.main(tempusuarioActivo);
            listaVentanas.add(GraficadorEstadisticaCantidadAlquileres.frame);
        } else {
            if (!frameVisible(GraficadorEstadisticaCantidadAlquileres.frame)) {
                rearmarFrame(GraficadorEstadisticaCantidadAlquileres.frame);
            }
            GraficadorEstadisticaCantidadAlquileres.frame.toFront();
        }
    }//GEN-LAST:event_estadisticaCantidadAlquileresActionPerformed

    private void estadisticaIngresosMensualesActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_estadisticaIngresosMensualesActionPerformed
       if ((frameCreado(GraficadorEstadisticaIngresosMensuales.frame)) && (frameCerrado(GraficadorEstadisticaIngresosMensuales.frame))) {
            listaVentanas.remove(GraficadorEstadisticaIngresosMensuales.frame);
            GraficadorEstadisticaIngresosMensuales.frame = null;
        }
        if (!frameCreado(GraficadorEstadisticaIngresosMensuales.frame)) {
            GraficadorEstadisticaIngresosMensuales.main(tempusuarioActivo);
            listaVentanas.add(GraficadorEstadisticaIngresosMensuales.frame);
        } else {
            if (!frameVisible(GraficadorEstadisticaIngresosMensuales.frame)) {
                rearmarFrame(GraficadorEstadisticaIngresosMensuales.frame);
            }
            GraficadorEstadisticaIngresosMensuales.frame.toFront();
        }
    }//GEN-LAST:event_estadisticaIngresosMensualesActionPerformed

    private void estadisticaCantidadVisitasActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_estadisticaCantidadVisitasActionPerformed
        if ((frameCreado(GraficadorEstadisticaVisitas.frame)) && (frameCerrado(GraficadorEstadisticaVisitas.frame))) {
            listaVentanas.remove(GraficadorEstadisticaVisitas.frame);
            GraficadorEstadisticaVisitas.frame = null;
        }
        if (!frameCreado(GraficadorEstadisticaVisitas.frame)) {
            GraficadorEstadisticaVisitas.main(tempusuarioActivo);
            listaVentanas.add(GraficadorEstadisticaVisitas.frame);
        } else {
            if (!frameVisible(GraficadorEstadisticaVisitas.frame)) {
                rearmarFrame(GraficadorEstadisticaVisitas.frame);
            }
            GraficadorEstadisticaVisitas.frame.toFront();
        }
    }//GEN-LAST:event_estadisticaCantidadVisitasActionPerformed

    private void estadisticaPorcentajeExtranjerosNacionalesActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_estadisticaPorcentajeExtranjerosNacionalesActionPerformed
        if ((frameCreado(GraficadorEstadisticaNacionalesExtranjeros.frame)) && (frameCerrado(GraficadorEstadisticaNacionalesExtranjeros.frame))) {
            listaVentanas.remove(GraficadorEstadisticaNacionalesExtranjeros.frame);
            GraficadorEstadisticaNacionalesExtranjeros.frame = null;
        }
        if (!frameCreado(GraficadorEstadisticaNacionalesExtranjeros.frame)) {
            GraficadorEstadisticaNacionalesExtranjeros.main(tempusuarioActivo);
            listaVentanas.add(GraficadorEstadisticaNacionalesExtranjeros.frame);
        } else {
            if (!frameVisible(GraficadorEstadisticaNacionalesExtranjeros.frame)) {
                rearmarFrame(GraficadorEstadisticaNacionalesExtranjeros.frame);
            }
            GraficadorEstadisticaNacionalesExtranjeros.frame.toFront();
        }
    }//GEN-LAST:event_estadisticaPorcentajeExtranjerosNacionalesActionPerformed

    private void articulosButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_articulosButtonActionPerformed
        if ((frameCreado(altaArticulos)) && (frameCerrado(altaArticulos.getFrame()))) {
            listaVentanas.remove(altaArticulos.getFrame());
            altaArticulos = null;
        }
        if (!frameCreado(altaArticulos)) {
            //(altaArticulos = (AltaArticulos) crearFrame(articulosButton.getName())).main(tempusuarioActivo);
            altaArticulos = new AltaArticulos(tempusuarioActivo);
            altaArticulos.main(tempusuarioActivo);
            listaVentanas.add(altaArticulos.getFrame());
        } else {
            if (!frameVisible(altaArticulos.getFrame())) {
                rearmarFrame(altaArticulos.getFrame());
            }
            altaArticulos.getFrame().toFront();
        }
    }//GEN-LAST:event_articulosButtonActionPerformed

    private void tipotemporadaButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_tipotemporadaButtonActionPerformed
        if ((frameCreado(AltaTipoTemporadas.frame)) && (frameCerrado(AltaTipoTemporadas.frame))) {
            listaVentanas.remove(AltaTipoTemporadas.frame);
            AltaTipoTemporadas.frame = null;
        }
        if (!frameCreado(AltaTipoTemporadas.frame)) {
            AltaTipoTemporadas.main(tempusuarioActivo);
            listaVentanas.add(AltaTipoTemporadas.frame);
        } else {
            if (!frameVisible(AltaTipoTemporadas.frame)) {
                rearmarFrame(AltaTipoTemporadas.frame);
            }
            AltaTipoTemporadas.frame.toFront();
        }
    }//GEN-LAST:event_tipotemporadaButtonActionPerformed

    private void unidadesalojamientoButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_unidadesalojamientoButtonActionPerformed
        if ((frameCreado(AltaUnidadAlojamiento.frame)) && (frameCerrado(AltaUnidadAlojamiento.frame))) {
            listaVentanas.remove(AltaUnidadAlojamiento.frame);
            AltaUnidadAlojamiento.frame = null;
        }
        if (!frameCreado(AltaUnidadAlojamiento.frame)) {
            AltaUnidadAlojamiento.main(tempusuarioActivo);
            listaVentanas.add(AltaUnidadAlojamiento.frame);
        } else {
            if (!frameVisible(AltaUnidadAlojamiento.frame)) {
                rearmarFrame(AltaUnidadAlojamiento.frame);
            }
            AltaUnidadAlojamiento.frame.toFront();
        }
    }//GEN-LAST:event_unidadesalojamientoButtonActionPerformed

    private void abmtemporadaButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_abmtemporadaButtonActionPerformed
        if ((frameCreado(AltaTemporadas.frame)) && (frameCerrado(AltaTemporadas.frame))) {
            listaVentanas.remove(AltaTemporadas.frame);
            AltaTemporadas.frame = null;
        }
        if (!frameCreado(AltaTemporadas.frame)) {
            AltaTemporadas.main(tempusuarioActivo);
            listaVentanas.add(AltaTemporadas.frame);
        } else {
            if (!frameVisible(AltaTemporadas.frame)) {
                rearmarFrame(AltaTemporadas.frame);
            }
            AltaTemporadas.frame.toFront();
        }
    }//GEN-LAST:event_abmtemporadaButtonActionPerformed

    private void salirBotonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_salirBotonActionPerformed
        cerrarVentanas();
        System.exit(0);
    }//GEN-LAST:event_salirBotonActionPerformed

    private void cerrarVentanas() {
        JFrame jFrame;
        WindowEvent wev;
        for (int i = 0; i < listaVentanas.size(); i++) {
            jFrame = listaVentanas.get(i);
            wev = new WindowEvent(jFrame, WindowEvent.WINDOW_CLOSING);
            jFrame.dispatchEvent(wev);
            Toolkit.getDefaultToolkit().getSystemEventQueue().postEvent(wev);
            jFrame.setVisible(false);
            jFrame.dispose();
            //jFrame.dispose();
        }
    }

    private void cerrarSesionBotonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_cerrarSesionBotonActionPerformed
        this.frame.dispose();
        Login login = new Login();
        login.main();
        cerrarVentanas();
    }//GEN-LAST:event_cerrarSesionBotonActionPerformed

    private void mantenimientoButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_mantenimientoButtonActionPerformed
        if ((frameCreado(VistaMantenimiento.frame)) && (frameCerrado(VistaMantenimiento.frame))) {
            listaVentanas.remove(VistaMantenimiento.frame);
            VistaMantenimiento.frame = null;
        }
        if (!frameCreado(VistaMantenimiento.frame)) {
            VistaMantenimiento.main(tempusuarioActivo);
            listaVentanas.add(VistaMantenimiento.frame);
        } else {
            if (!frameVisible(VistaMantenimiento.frame)) {
                rearmarFrame(VistaMantenimiento.frame);
            }
            VistaMantenimiento.frame.toFront();
        }
    }//GEN-LAST:event_mantenimientoButtonActionPerformed

    private void cuentasUsuariosButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_cuentasUsuariosButtonActionPerformed
        if ((frameCreado(AltaUsuarios.frame)) && (frameCerrado(AltaUsuarios.frame))) {
            listaVentanas.remove(AltaUsuarios.frame);
            AltaUsuarios.frame = null;
        }
        if (!frameCreado(AltaUsuarios.frame)) {
            AltaUsuarios.main(tempusuarioActivo);
            listaVentanas.add(AltaUsuarios.frame);
        } else {
            if (!frameVisible(AltaUsuarios.frame)) {
                rearmarFrame(AltaUsuarios.frame);
            }
            AltaUsuarios.frame.toFront();
        }
    }//GEN-LAST:event_cuentasUsuariosButtonActionPerformed

    private void ayudaLabelMouseEntered(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_ayudaLabelMouseEntered
        ayudaLabel.setToolTipText("En esta pantalla usted podra agregar,\n editar y eliminar unidades de alojamiento");
    }//GEN-LAST:event_ayudaLabelMouseEntered

    private void correoButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_correoButtonActionPerformed
        if ((frameCreado(ConfigurarMail.frame)) && (frameCerrado(ConfigurarMail.frame))) {
            listaVentanas.remove(ConfigurarMail.frame);
            ConfigurarMail.frame = null;
        }
        if (!frameCreado(ConfigurarMail.frame)) {
            ConfigurarMail.main(tempusuarioActivo);
            listaVentanas.add(ConfigurarMail.frame);
        } else {
            if (!frameVisible(ConfigurarMail.frame)) {
                rearmarFrame(ConfigurarMail.frame);
            }
            ConfigurarMail.frame.toFront();
        }
    }//GEN-LAST:event_correoButtonActionPerformed

    private void canceladosButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_canceladosButtonActionPerformed
        if ((frameCreado(VistaCancelado.frame)) && (frameCerrado(VistaCancelado.frame))) {
            listaVentanas.remove(VistaCancelado.frame);
            VistaCancelado.frame = null;
        }
        if (!frameCreado(VistaCancelado.frame)) {
            VistaCancelado.main(tempusuarioActivo);
            listaVentanas.add(VistaCancelado.frame);
        } else {
            if (!frameVisible(VistaCancelado.frame)) {
                rearmarFrame(VistaCancelado.frame);
            }
            VistaCancelado.frame.toFront();
        }
    }//GEN-LAST:event_canceladosButtonActionPerformed

    private void opcionesAvanzadasButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_opcionesAvanzadasButtonActionPerformed
        if ((frameCreado(OpcionesAvanzadas.frame)) && (frameCerrado(OpcionesAvanzadas.frame))) {
            listaVentanas.remove(OpcionesAvanzadas.frame);
            OpcionesAvanzadas.frame = null;
        }
        if (!frameCreado(OpcionesAvanzadas.frame)) {
            OpcionesAvanzadas.main(tempusuarioActivo);
            listaVentanas.add(OpcionesAvanzadas.frame);
        } else {
            if (!frameVisible(OpcionesAvanzadas.frame)) {
                rearmarFrame(OpcionesAvanzadas.frame);
            }
            OpcionesAvanzadas.frame.toFront();
        }
    }//GEN-LAST:event_opcionesAvanzadasButtonActionPerformed

    private void controlRopaBlancaRecibidaButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_controlRopaBlancaRecibidaButtonActionPerformed
        if ((frameCreado(ControlRopaBlancaRecibidaView.frame)) && (frameCerrado(ControlRopaBlancaRecibidaView.frame))) {
            listaVentanas.remove(ControlRopaBlancaRecibidaView.frame);
            ControlRopaBlancaRecibidaView.frame = null;
        }
        if (!frameCreado(ControlRopaBlancaRecibidaView.frame)) {
            ControlRopaBlancaRecibidaView.main(tempusuarioActivo);
            listaVentanas.add(ControlRopaBlancaRecibidaView.frame);
        } else {
            if (!frameVisible(ControlRopaBlancaRecibidaView.frame)) {
                rearmarFrame(ControlRopaBlancaRecibidaView.frame);
            }
            ControlRopaBlancaRecibidaView.frame.toFront();
        }
    }//GEN-LAST:event_controlRopaBlancaRecibidaButtonActionPerformed

    private void balanceCajaButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_balanceCajaButtonActionPerformed
        if ((frameCreado(BalanceCaja.frame)) && (frameCerrado(BalanceCaja.frame))) {
            listaVentanas.remove(BalanceCaja.frame);
            BalanceCaja.frame = null;
        }
        if (!frameCreado(BalanceCaja.frame)) {
            BalanceCaja.main(tempusuarioActivo);
            listaVentanas.add(BalanceCaja.frame);
        } else {
            if (!frameVisible(BalanceCaja.frame)) {
                rearmarFrame(BalanceCaja.frame);
            }
            BalanceCaja.frame.toFront();
        }
    }//GEN-LAST:event_balanceCajaButtonActionPerformed

    private void monedasButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_monedasButtonActionPerformed
        if ((frameCreado(AltaMoneda.frame)) && (frameCerrado(AltaMoneda.frame))) {
            listaVentanas.remove(AltaMoneda.frame);
            AltaMoneda.frame = null;
        }
        if (!frameCreado(AltaMoneda.frame)) {
            AltaMoneda.main(tempusuarioActivo);
            listaVentanas.add(AltaMoneda.frame);
        } else {
            if (!frameVisible(AltaMoneda.frame)) {
                rearmarFrame(AltaMoneda.frame);
            }
            AltaMoneda.frame.toFront();
        }
    }//GEN-LAST:event_monedasButtonActionPerformed

    private void movimientosCajaButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_movimientosCajaButtonActionPerformed
        if ((frameCreado(MovimientosCaja.frame)) && (frameCerrado(MovimientosCaja.frame))) {
            listaVentanas.remove(MovimientosCaja.frame);
            MovimientosCaja.frame = null;
        }
        if (!frameCreado(MovimientosCaja.frame)) {
            MovimientosCaja.main(tempusuarioActivo);
            listaVentanas.add(MovimientosCaja.frame);
        } else {
            if (!frameVisible(MovimientosCaja.frame)) {
                rearmarFrame(MovimientosCaja.frame);
            }
            MovimientosCaja.frame.toFront();
        }
    }//GEN-LAST:event_movimientosCajaButtonActionPerformed

    private void logsButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_logsButtonActionPerformed
        if ((frameCreado(LogsView.frame)) && (frameCerrado(LogsView.frame))) {
            listaVentanas.remove(LogsView.frame);
            LogsView.frame = null;
        }
        if (!frameCreado(LogsView.frame)) {
            LogsView.main(tempusuarioActivo);
            listaVentanas.add(LogsView.frame);
        } else {
            if (!frameVisible(LogsView.frame)) {
                rearmarFrame(LogsView.frame);
            }
            LogsView.frame.toFront();
        }
    }//GEN-LAST:event_logsButtonActionPerformed
    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.JSeparator Separator;
    private javax.swing.JButton abmtemporadaButton;
    private javax.swing.JLabel administracionLabel;
    private javax.swing.JPanel administracionPanel;
    private javax.swing.JButton alquileresButton;
    private javax.swing.JButton altaferiadoButton;
    private javax.swing.JButton articulosButton;
    private javax.swing.JLabel ayudaLabel;
    private javax.swing.JButton balanceCajaButton;
    private javax.swing.JPanel cajaPanel;
    private javax.swing.JButton canceladosButton;
    private javax.swing.JButton cerrarSesionBoton;
    private javax.swing.JButton clienteButton;
    private javax.swing.JButton controlRopaBlancaEntregadaButton;
    private javax.swing.JButton controlRopaBlancaRecibidaButton;
    private javax.swing.JButton correoButton;
    private javax.swing.JLabel creadoresLabel;
    private javax.swing.JButton cuentasUsuariosButton;
    private javax.swing.JButton disponibilidadButton;
    private javax.swing.JButton estadisticaCantidadAlquileres;
    private javax.swing.JButton estadisticaCantidadVisitas;
    private javax.swing.JButton estadisticaIngresosMensuales;
    private javax.swing.JPanel estadisticaPanel;
    private javax.swing.JButton estadisticaPorcentajeExtranjerosNacionales;
    private javax.swing.JLabel estadisticasLabel;
    private javax.swing.JLabel inventarioLabel;
    private javax.swing.JPanel inventarioPanel;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel jLabel2;
    private javax.swing.JLabel jLabel3;
    private javax.swing.JLabel jLabel6;
    private javax.swing.JMenuItem jMenuItem1;
    private javax.swing.JButton logsButton;
    private javax.swing.JButton mantenimientoButton;
    private javax.swing.JLabel mantenimientoLabel;
    private javax.swing.JPanel mantenimientoPanel;
    private javax.swing.JButton monedasButton;
    private javax.swing.JButton movimientosCajaButton;
    private javax.swing.JButton opcionesAvanzadasButton;
    private javax.swing.JLabel organizacionLabel;
    private javax.swing.JPanel organizacionPanel;
    private javax.swing.JButton reservasButton;
    private javax.swing.JButton ropaBlancaButton;
    private javax.swing.JButton salirBoton;
    private javax.swing.JLabel sistemaLabel;
    private javax.swing.JLabel sistemaLabel1;
    private javax.swing.JPanel sistemaPanel;
    private javax.swing.JButton tipotemporadaButton;
    private javax.swing.JPanel tituloPanel;
    private javax.swing.JButton unidadesalojamientoButton;
    // End of variables declaration//GEN-END:variables

    public void main(Usuarios usuario) {
        /*
         * Set the Nimbus look and feel
         */
        //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
        /*
         * If Nimbus (introduced in Java SE 6) is not available, stay with the
         * default look and feel. For details see
         * http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html
         */
        try {
            for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
                if ("Nimbus".equals(info.getName())) {
                    javax.swing.UIManager.setLookAndFeel(info.getClassName());
                    break;


                }
            }
        } catch (ClassNotFoundException ex) {
            java.util.logging.Logger.getLogger(AltaTipoTemporadas.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (InstantiationException ex) {
            java.util.logging.Logger.getLogger(AltaTipoTemporadas.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (IllegalAccessException ex) {
            java.util.logging.Logger.getLogger(AltaTipoTemporadas.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (javax.swing.UnsupportedLookAndFeelException ex) {
            java.util.logging.Logger.getLogger(AltaTipoTemporadas.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        }
        //</editor-fold>

        /*
         * Create and display the form
         */
        final Usuarios usuarioActual = usuario;
        EventQueue.invokeLater(new Runnable() {

            public void run() {
                JFrame frame = new JFrame();
                frame.setTitle("Bienvenido  " + usuarioActual.getNombre() + "   " + usuarioActual.getRol() + "    -   Sistema Integrado de Administración de Alquileres Turísticos");
                frame.setContentPane(new MenuPrincipal(frame, usuarioActual));
                frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                frame.pack();
                frame.setIconImage(new ImageIcon(getClass().getResource("/images/logo.png")).getImage());
                frame.setVisible(true);
                frame = null;
            }
        });
    }
}
